note
	description: "Summary description for {MC72}."
	author: ""
	date: "$Date$"
	revision: "$Revision$"

class
	MC72

create
	make_MC72

feature
	-- instancias de clase
	exocet: MISIL

	make_MC72
			-- constructor de la clase MC72
			do
				!!exocet.make_misil
			end

	Preparar_Misil
			-- Prepara el misil para poder ser disparado
			local
				i:INTEGER
			do
				i:=0
				Setup_Misil
				i:=1
				Cargar_Misil

			rescue
				if (i=1)
				then
					retry
				end

			end

	Apuntar_Misil (objetivo:STRING)
		is
			-- Fija el blanco de misil de acuerdo al parametro de entrada
			-- Falla si Fijar_Blanco() de la clase MISIL falla.
		do
			exocet.fijar_blanco(objetivo)
		end

	Lanzar_Misil is
			-- Le ordena al misil que despegue
			-- Falla si la operacion Despergar de la clase MISIL falla
			do
				exocet.despegar
			end


feature {NONE}
	falla: FALLADOR

	Hay_Misiles: BOOLEAN is
			-- Retorna verdadero si hay misiles en stock y false en caso contrario
		local
			r:RANDOM
			d:DATE_TIME
		do
			!!r.make
			!!d.make_now
			r.set_seed (d.seconds)
			if (((r.next_random (d.seconds)) \\ 2) = 0) then
				result:= true
			else
				result:= false
			end
		end

	Setup_Misil is
			-- Si hay misiles disponibles entonces crea un nuevo misil
			-- Caso contrario la operacion falla.
			do
				if (Hay_Misiles)
				then
					exocet.make_misil
				else
					!!falla
					falla.fallar
				end
			rescue
					io.put_string ("Mirage: FATAL: No hay misiles disponibles.%N")
			end

	Cargar_Misil is
			-- Esta operacion activa el misil. Falla si la operacion Activar()
			-- de la clase MISIL falla
			do
				exocet.activar
			end








end
